// 第三方库现在通过 vendor.js 在全局加载
// 先导入所有模块
import './app.routes';
import './app.config';

import './services/http.service.js';
import './services/auth.service.js';
import './services/storage.service.js';
import './services/strap-config.service.js';
import './services/language.service.js';

import './components/navbar/navbar.component.js';
import './components/layout/layout.component.js';

import './directives/ui-select2.directive.js';
import './directives/kindeditor.directive.js';

import './filters/trusted-html.filter.js';

import './pages/login/login.controller.js';
import './pages/home/home.controller.js';
import './pages/todos/todos.controller.js';
import './pages/ticket-create/ticket-create.controller.js';
import './pages/ticket-query/ticket-query.controller.js';
import './pages/ticket-detail/ticket-detail.controller.js';
import './pages/settings/settings.controller.js';
import './pages/user-management/user-management.controller.js';

// 等待第三方库加载完成后再初始化 Angular 应用
function initApp() {
  // 使用全局的 angular 对象
  const angular = window.angular;
  const uiRouter = 'ui.router';
  
  if (!angular) {
    console.error('Angular 未找到，等待加载...');
    return;
  }

  const app = angular.module('app', [
    uiRouter,
    'mgcrea.ngStrap',
    'pascalprecht.translate',
    'ngCookies',
    'ngTable',
    'ngStorage',
    'app.routes',
    'app.config',
    'app.services.http',
    'app.services.auth',
    'app.services.storage',
    'app.services.strapConfig',
    'app.services.language',
    'app.components.navbar',
    'app.components.layout',
    'app.directives.uiSelect2',
    'app.directives.kindeditor',
    'app.filters.trustedHtml',
    'app.pages.login',
    'app.pages.home',
    'app.pages.todos',
    'app.pages.ticketCreate',
    'app.pages.ticketQuery',
    'app.pages.ticketDetail',
    'app.pages.settings',
    'app.pages.userManagement'
  ]);

  console.log('Angular 应用已初始化');
  return app;
}

// 监听第三方库加载完成事件
window.addEventListener('vendorLibsLoaded', () => {
  console.log('收到 vendorLibsLoaded 事件，开始初始化应用');
  const app = initApp();
});

// 如果第三方库已经加载完成，直接初始化
if (window.angular && window.jQuery) {
  console.log('第三方库已就绪，直接初始化应用');
  const app = initApp();
}

export default initApp;